#!/usr/bin/env node

const { spawn } = require('child_process');
const path = require('path');

console.log('🚀 启动 Stone UI 开发服务器...');
console.log('📁 项目目录:', __dirname);
console.log('🌐 服务器地址: http://localhost:3000');
console.log('👀 监听文件变化中...');
console.log('💡 提示: 输入 "rs" 可手动重启服务器');
console.log('🛑 按 Ctrl+C 停止服务器');
console.log('─'.repeat(50));

// 启动http-server (移除 -o 参数，不自动打开浏览器，添加 --silent 减少日志)
const server = spawn('npx', ['http-server', '.', '-p', '3000', '--silent'], {
  stdio: ['inherit', 'pipe', 'pipe'],
  shell: true,
  cwd: __dirname
});

// 过滤输出，隐藏开发者工具相关请求
const filterDevToolsRequests = (data) => {
  const output = data.toString();
  const lines = output.split('\n');
  
  const filteredLines = lines.filter(line => {
    // 过滤掉开发者工具相关请求
    return !line.includes('.well-known/appspecific') &&
           !line.includes('com.chrome.devtools') &&
           !line.includes('favicon.ico') &&
           line.trim() !== '';
  });
  
  if (filteredLines.length > 0) {
    console.log(filteredLines.join('\n'));
  }
};

server.stdout.on('data', filterDevToolsRequests);
server.stderr.on('data', filterDevToolsRequests);

server.on('error', (err) => {
  console.error('❌ 服务器启动失败:', err.message);
  process.exit(1);
});

server.on('close', (code) => {
  console.log(`\n📴 服务器已停止 (退出码: ${code})`);
  process.exit(code);
});

// 处理进程退出
process.on('SIGINT', () => {
  console.log('\n🛑 正在停止服务器...');
  server.kill('SIGINT');
});

process.on('SIGTERM', () => {
  console.log('\n🛑 正在停止服务器...');
  server.kill('SIGTERM');
}); 